package com.moli.iov.down.enums.command;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  终端参数设置0xD9 枚举
 * </p>
 *
 * @author: zql
 * @Date: 2018/11/27 11:54
 */
public enum TerminalSettingEnum {

    /**
     * 终端序列号
     */
    TERMINAL_SERIAL_NUMBER("1001", "终端序列号"),

    /**
     * 终端型号
     */
    TERMINAL_MODEL("1002", "终端型号"),

    /**
     * 供应商名称
     */
    SUPPLIER("1003", "供应商名称"),

    /**
     * ICCID
     */
    ICCID("1004", "ICCID"),

    /**
     * MSISDN
     */
    MSISDN("1005", "MSISDN"),

    /**
     * 软件版本
     */
    SOFTWARE_VERSION("1006", "软件版本"),

    /**
     * 硬件版本
     */
    HARDWARE_VERSION("1007", "硬件版本"),

    /**
     * VIN
     */
    VIN("2001", "VIN"),

    /**
     * 终端租赁模式： 0x01 非租赁模式； 0x02 租赁模式
     */
    LEASING_MODE("2002", "终端租赁模式"),

    /**
     * 平台域名或 IP
     */
    IP("3001", "平台域名或IP"),

    /**
     * 平台端口
     */
    PORT("3002", "平台端口"),

    /**
     * 实时数据上报频率， 单位： 秒
     */
    DATA_FREQUENCY("3003", "实时数据上报频率"),

    /**
     * 蓝牙名称
     */
    BLUETOOTH_NAME("4001", "蓝牙名称"),

    /**
     * 蓝牙MAC地址
     */
    BLUETOOTH_MAC("4002", "蓝牙MAC地址"),

    /**
     * 蓝牙绑定密码
     */
    BLUETOOTH_PWD("4003", "蓝牙绑定密码"),

    /**
     * 蓝牙密码有效时长 (秒)
     */
    BLUETOOTH_VALID_TIME("4010", "蓝牙密码有效时长");

    private String flag;

    private String msg;

    TerminalSettingEnum(String flag, String msg){
        this.flag = flag;
        this.msg = msg;
    }

    /**
     * 获取全部 参数id
     * @return
     */
    public static List<String> getAllFlag(){
        List<String> flags = new ArrayList<>();
        for(TerminalSettingEnum val : TerminalSettingEnum.values()){
            flags.add(val.flag);
        }
        return flags;
    }

    public static String getMsg(String flag){
        for(TerminalSettingEnum e : TerminalSettingEnum.values()){
            if(e.flag.equals(flag)){
                return e.msg;
            }
        }
        return "未定义命令";
    }

    public String getFlag() {
        return flag;
    }

    public String getMsg() {
        return msg;
    }
}
